package com.woniuxy.entity.dto.operations;

import com.woniuxy.entity.po.operations.Client;
import com.woniuxy.entity.po.operations.Vehicle;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.checkerframework.common.aliasing.qual.NonLeaked;
import org.springframework.beans.BeanUtils;

import java.util.List;

/**
 * @BelongsProject: charging-management-platform
 * @BelongsPackage: com.woniuxy.entity.dto.operations
 * @Author: Quan
 * @Date: 2025/4/2 15:04
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ClientDetailDTO {
	/**
	 * 用户 ID（主键）
	 */
	private Long id;

	/**
	 * 用于前端显示的编号
	 */
	private String clientNum;

	/**
	 * 客户名称
	 */
	private String clientName;

	/**
	 * 登录账号
	 */
	private String username;

	/**
	 * 用户密码
	 */
	private String password;

	/**
	 * 图片地址
	 */
	private String imgSrc;

	/**
	 * 联系电话
	 */
	private String phone;

	/**
	 * 客户类型（1-个人普通用户, 2-公司合作用户）, dictionary_id
	 */
	private Long clientTypeId;

	/**
	 * 各自类别下的id
	 */
	private Long clientTypeKey;

	/**
	 * 类型名
	 */
	private String clientTypeValue;

	/**
	 * 账户类型(1-预付费, 2-后付费, 3-月结算付费, 4-年结算付费), dictionary_id
	 */
	private Long accountTypeId;

	/**
	 * 各自类别下的id
	 */
	private Long accountTypeKey;

	/**
	 * 类型名
	 */
	private String accountTypeValue;

	/**
	 * 持有汽车的数量
	 */
	private Integer holdCarNum;

	/**
	 * 是否禁用该用户 (1-正常使用状态, 0-禁用状态)
	 */
	private Integer clientCondition;

	/**
	 * 是否持卡
	 */
	private Integer handleCardOrNot;

	/**
	 * 备注
	 */
	private String remark;

	/**
	 * 逻辑删除 (1-正常, 0-删除)
	 */
	private Integer clientStatus;

	private List<VehicleDisplayForClientDetailDTO> vehicleList;

	private ClientDetailDTO(Client client) {
		BeanUtils.copyProperties(client, this);
	}
}
